﻿/*
SINACOR - BMF&Bovespa
Arquivo: ErroAlocacaoComitente.cs
Criado em: 28-jul-2010 09:28:01
Arquiteto Responsável: p-ineves
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using Sinacor.Infra.Service.Common;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Service.Validation;

namespace Sinacor.Servico.Bovespa.Alocacao.BusinessLogic 
{
	public class ErroAlocacaoComitente : BaseBusinessLogic 
	{
		#region Métodos Públicos

		/// 
		/// <param name="entity"></param>
		public List<BusinessEntity.ErroAlocacaoComitente> ConsultarErrosAlocacoesComitentes(BusinessEntity.Parameter.FiltroErroAlocacaoComitente entity)
		{
            ResourceAccess.ErroAlocacaoComitente raErroAlocacaoComitente = new ResourceAccess.ErroAlocacaoComitente();
            List<BusinessEntity.ErroAlocacaoComitente> retorno = raErroAlocacaoComitente.ConsultarErrosAlocacoesComitentes(entity);
            List<BusinessEntity.ErroAlocacao> erros = raErroAlocacaoComitente.ConsultarErrosAlocacoes(entity);
            BusinessEntity.ErroAlocacaoComitente item;

            for (int i = 0; i < retorno.Count; i++)
            {
                item = retorno[i];

                if (item.Erro1 != null)
                {
                    item.Erro1 = erros.FirstOrDefault<BusinessEntity.ErroAlocacao>(delegate(BusinessEntity.ErroAlocacao parametro)
                    {
                        return (parametro.CodigoErro == item.Erro1.CodigoErro);
                    });
                }

                if (item.Erro2 != null)
                {
                    item.Erro2 = erros.FirstOrDefault<BusinessEntity.ErroAlocacao>(delegate(BusinessEntity.ErroAlocacao parametro)
                    {
                        return (parametro.CodigoErro == item.Erro2.CodigoErro);
                    });
                }

                if (item.Erro3 != null)
                {
                    item.Erro3 = erros.FirstOrDefault<BusinessEntity.ErroAlocacao>(delegate(BusinessEntity.ErroAlocacao parametro)
                    {
                        return (parametro.CodigoErro == item.Erro3.CodigoErro);
                    });
                }
            }

            return retorno;
		}

		#endregion
    }
}